﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MemoryIndexNet.DataStructures
{
    public interface IBinarySearchTree<K, V> :
        IBinaryTree<V>,
        IMap<K, V>
        where K : IComparable<K>
    {
        K Key { get; }
        new IBinarySearchTree<K, V> Left { get; }
        new IBinarySearchTree<K, V> Right { get; }
        new IBinarySearchTree<K, V> Add(K key, V value);
        new IBinarySearchTree<K, V> Remove(K key);
        IBinarySearchTree<K, V> Search(K key);
    }
}
